package com.lucsa.utils;

import com.lucsa.jsonUtils.Serializer;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

import java.nio.ByteBuffer;

public class RpcEncoder extends MessageToByteEncoder {
    private Class<?> clazz;//类是那个类,为什么需要这个类
    private Serializer serializer;

    public RpcEncoder(Class<?> clazz, Serializer serializer){
        this.clazz=clazz;
        this.serializer=serializer;
    }


    @Override
    protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {
            if(clazz!=null && clazz.isInstance(msg)){
                //msg 表示就是rpcRequest
                byte[] bytes = serializer.serialize(msg);
//                out.writeInt(bytes.length);
                out.writeBytes(bytes);
            }


    }
}
